// 说一下 type 和 interface 的差异
// !相同点
// 都可以描述对象和方法

// interface 描述对象
/* interface IPerson {
  name: string
  age: number
}
const p: IPerson = { name: '尼姑拉斯', age: 18 } */

// interface 描述方法
/* interface ISum {
  (n1: number, n2: number): number
}
const sum: ISum = (n1, n2) => n1 + n2 */

// !注意：下面写法是描述的是对象里面的某一个方法
/* interface ISum {
  // 分别描述
  sum(n1: number, n2: number): number
} */

/* interface ISum {
  // 整体描述
  sum: (n1: number, n2: number) => number
}
const sum: ISum = {
  sum(n1, n2) {
    return n1 + n2
  },
} */

// .........................

// type 描述对象
/* type IPerson = {
  name: string
  age: number
}
const p: IPerson = { name: '尼姑拉斯', age: 18 } */

// type 描述方法
/* type ISum = {
  (n1: number, n2: number): number
}
const sum: ISum = (n1, n2) => n1 + n2 */

// !注意：下面写法是描述的是对象里面的某一个方法
/* type ISum = {
  // 分别描述
  sum(n1: number, n2: number): number
} */

type ISum = {
  // 整体描述
  sum: (n1: number, n2: number) => number
}
const sum: ISum = {
  sum(n1, n2) {
    return n1 + n2
  },
}

export {}
